package Q997;

/**
 * 找到小镇的法官
 * @author 23737
 * @time 2021.12.18
 */
public class Test {
    public static void main(String[] args) {

    }
}

/**
 * 用一个二维数组记录每个结点的入度和出度，出度为0入度为N的就是法官
 */
class Solution {
    public int findJudge(int N, int[][] trust) {
        int[][] people = new int[N][2];
        for(int[] person : trust){
            int out = person[0];
            int in = person[1];
            //表示出度的值
            people[out - 1][0] ++;
            //表示入度的值
            people[in - 1][1] ++;
        }
        //遍历 找到出度为0，入度为N的元素，然后返回i+1
        for(int i = 0; i < N; i ++){
            if(people[i][0] == 0 && people[i][1] == N - 1)
                return i + 1;
        }
        return -1;
    }
}